/*******************************************************************************
 * Copyright (c) 2000, 2005 IBM Corporation and others.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 *
 * Contributors:
 *     IBM Corporation - initial API and implementation
 *******************************************************************************/
package com.architexa.org.eclipse.gef.palette;

import com.architexa.org.eclipse.gef.requests.CreationFactory;

import org.eclipse.jface.resource.ImageDescriptor;


/**
 * A combination of a {@link PaletteTemplateEntry} and {@link ToolEntry}.  The entry will
 * be rendered as a ToolEntry, but it will also be possible to use the entry as a
 * DragSource in the same way as a template.
 * @author hudsonr
 */
public class CombinedTemplateCreationEntry extends CreationToolEntry {

private Object template;

/**
 * Constructs an entry with the given creation factory and template. The creation factory
 * is used by the creation tool when the entry is selected. The template is used with the
 * {@link com.architexa.org.eclipse.gef.dnd.TemplateTransferDragSourceListener}.
 * @since 3.2
 * @param label the label
 * @param shortDesc the descriptoin
 * @param template the template object
 * @param factory the CreationFactory
 * @param iconSmall the small icon
 * @param iconLarge the large icon
 */
public CombinedTemplateCreationEntry(String label, String shortDesc, Object template,
		CreationFactory factory, ImageDescriptor iconSmall, ImageDescriptor iconLarge) {
	super(label, shortDesc, factory, iconSmall, iconLarge);
	setTemplate(template);
}

/**
 * Constructs an entry with the given creation factory. The creation factory is also used
 * as the template object.
 * 
 * @param label the label
 * @param shortDesc the description
 * @param factory the creation factory and template
 * @param iconSmall the small icon
 * @param iconLarge the large icon
 * @since 3.2
 */
public CombinedTemplateCreationEntry(String label, String shortDesc,
		CreationFactory factory, ImageDescriptor iconSmall, ImageDescriptor iconLarge) {
	this(label, shortDesc, factory, factory, iconSmall, iconLarge);
}

/**
 * Returns the template object.
 * @return Object the template
 */
public Object getTemplate() {
	return template;
}

/**
 * Sets the template.
 * @param template The template
 */
public void setTemplate(Object template) {
	this.template = template;
}

}
